package com.nado.extensions.util;

import java.util.List;

public interface ObjectNode<T> {

	String name();

	T value();
	List<T> valueAll();

	ObjectNode<T> child(int index);
	List<ObjectNode<T>> children();

	ObjectNode<T> select(String expression);
	List<ObjectNode<T>> selectAll(String expression);

	T evaluate(String expression);
	T evaluate(String expression, T defaultValue);
}
